#ifndef MAPOBJECT_H
#define MAPOBJECT_H
#include <Ogre.h>

class MapObject{
public:
    enum category {EMPTY, WALL, BUILDING, GRASS, WATER, BASE };
    MapObject(){}
    MapObject(category id,
              Ogre::Vector3 position,
              int energy,
              bool destroyable,
              bool traversable
              ):mCategory(id),
                mPosition(position),
                mEnergy(energy),
                mDestroyable(destroyable),
                mTraversable(traversable){}

    virtual ~MapObject();

    int getCategory();
    bool isDestroyable();
    bool isTraversable();
    bool isDestroyed();
    Ogre::Vector3 getPosition();

    void setCategory(category category);
    void setDestroyable(bool destroyable);
    void setTraversable(bool traversable);
    void setDamage(int damage);
    void setPosition(Ogre::Vector3 newPosition);

private:
    category        mCategory;
    bool            mDestroyable;
    bool            mTraversable;
    int             mEnergy;
    Ogre::Vector3   mPosition;
};

#endif // MAPOBJECT_H
